package org.dodgybits.shuffle.web.client;
import gwtupload.client.IUploader;
import gwtupload.client.SingleUploader;
import org.dodgybits.shuffle.web.client.gin.ShuffleGinjector;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.CssResource.NotStrict;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootLayoutPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Shuffle implements EntryPoint, IUploader.OnFinishUploaderHandler {
interface GlobalResources extends ClientBundle {
@NotStrict
@Source("global.css")
CssResource css();
}
/**
* This method constructs the application user interface by instantiating
* controls and hooking up event handler.
*/
public void onModuleLoad() {
// Inject global styles.
GWT.<GlobalResources> create(GlobalResources.class).css()
.ensureInjected();
ShuffleGinjector ginjector = GWT.create(ShuffleGinjector.class);
Main main = ginjector.getMain();
// Get rid of scrollbars, and clear out the window's built-in margin,
// because we want to take advantage of the entire client area.
Window.enableScrolling(false);
Window.setMargin("0px");
RootLayoutPanel.get().add(main);
// addUploader();
}
private void addUploader() {
// Create a new uploader panel and attach it to the document
SingleUploader defaultUploader = new SingleUploader();
defaultUploader.setServletPath("/shuffle/restore");
RootLayoutPanel.get().add(defaultUploader);
// Add a finish handler which will load the image once the upload
// finishes
defaultUploader.addOnFinishUploadHandler(this);
}
public void onFinish(IUploader uploader) {
// DO SOMETHING on done...
}
//
// /**
// * The message displayed to the user when the server cannot be reached or
// * returns an error.
// */
// private static final String SERVER_ERROR = "An error occurred while "
// + "attempting to contact the server. Please check your network "
// + "connection and try again.";
//
// /**
// * Create a remote service proxy to talk to the server-side Greeting
// service.
// */
// private final GreetingServiceAsync greetingService = GWT
// .create(GreetingService.class);
//
// /**
// * This is the entry point method.
// */
// public void onModuleLoad() {
// final Button sendButton = new Button("Send");
// final TextBox nameField = new TextBox();
// nameField.setText("GWT User");
//
// // We can add style names to widgets
// sendButton.addStyleName("sendButton");
//
// // Add the nameField and sendButton to the RootPanel
// // Use RootPanel.get() to get the entire body element
// RootPanel.get("nameFieldContainer").add(nameField);
// RootPanel.get("sendButtonContainer").add(sendButton);
//
// // Focus the cursor on the name field when the app loads
// nameField.setFocus(true);
// nameField.selectAll();
//
// // Create the popup dialog box
// final DialogBox dialogBox = new DialogBox();
// dialogBox.setText("Remote Procedure Call");
// dialogBox.setAnimationEnabled(true);
// final Button closeButton = new Button("Close");
// // We can set the id of a widget by accessing its Element
// closeButton.getElement().setId("closeButton");
// final Label textToServerLabel = new Label();
// final HTML serverResponseLabel = new HTML();
// VerticalPanel dialogVPanel = new VerticalPanel();
// dialogVPanel.addStyleName("dialogVPanel");
// dialogVPanel.add(new HTML("<b>Sending name to the server:</b>"));
// dialogVPanel.add(textToServerLabel);
// dialogVPanel.add(new HTML("<br><b>Server replies:</b>"));
// dialogVPanel.add(serverResponseLabel);
// dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
// dialogVPanel.add(closeButton);
// dialogBox.setWidget(dialogVPanel);
//
// // Add a handler to close the DialogBox
// closeButton.addClickHandler(new ClickHandler() {
// public void onClick(ClickEvent event) {
// dialogBox.hide();
// sendButton.setEnabled(true);
// sendButton.setFocus(true);
// }
// });
//
// // Create a handler for the sendButton and nameField
// class MyHandler implements ClickHandler, KeyUpHandler {
// /**
// * Fired when the user clicks on the sendButton.
// */
// public void onClick(ClickEvent event) {
// sendNameToServer();
// }
//
// /**
// * Fired when the user types in the nameField.
// */
// public void onKeyUp(KeyUpEvent event) {
// if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
// sendNameToServer();
// }
// }
//
// /**
// * Send the name from the nameField to the server and wait for a response.
// */
// private void sendNameToServer() {
// sendButton.setEnabled(false);
// String textToServer = nameField.getText();
// textToServerLabel.setText(textToServer);
// serverResponseLabel.setText("");
// greetingService.greetServer(textToServer, new AsyncCallback<String>() {
// public void onFailure(Throwable caught) {
// // Show the RPC error message to the user
// dialogBox.setText("Remote Procedure Call - Failure");
// serverResponseLabel.addStyleName("serverResponseLabelError");
// serverResponseLabel.setHTML(SERVER_ERROR);
// dialogBox.center();
// closeButton.setFocus(true);
// }
//
// public void onSuccess(String result) {
// dialogBox.setText("Remote Procedure Call");
// serverResponseLabel.removeStyleName("serverResponseLabelError");
// serverResponseLabel.setHTML(result);
// dialogBox.center();
// closeButton.setFocus(true);
// }
// });
// }
// }
//
// // Add a handler to send the name to the server
// MyHandler handler = new MyHandler();
// sendButton.addClickHandler(handler);
// nameField.addKeyUpHandler(handler);
// }
}